home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / AIncludes / Pointing.a < prev    next >
Text File  |  1996-05-01  |  7KB  |  262 lines

  1. ;
  2. ;    File:        Pointing.a
  3. ;
  4. ;    Contains:    Pointer Family Interface
  5. ;
  6. ;    Version:    Technology:    Copland
  7. ;                Release:    Universal Interfaces 3.0d3 on Copland DR1
  8. ;
  9. ;    Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10. ;
  11. ;    Bugs?:        If you find a problem with this file, send the file and version
  12. ;                information (from above) and the problem description to:
  13. ;
  14. ;                    Internet:    apple.bugs@applelink.apple.com
  15. ;                    AppleLink:    APPLE.BUGS
  16. ;
  17. ;
  18.     IF &TYPE('__POINTING__') = 'UNDEFINED' THEN
  19. __POINTING__ SET 1
  20.  
  21.     IF &TYPE('__KERNEL__') = 'UNDEFINED' THEN
  22.     include 'Kernel.a'
  23.     ENDIF
  24.     IF &TYPE('__NAMEREGISTRY__') = 'UNDEFINED' THEN
  25.     include 'NameRegistry.a'
  26.     ENDIF
  27.     IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
  28.     include 'Types.a'
  29.     ENDIF
  30.     IF FOR_SYSTEM8_PREEMPTIVE THEN
  31. ; *************** Constants ***************
  32.  
  33. kAnyDeviceClass                    EQU        'anyp'
  34. kMouseDeviceClass                EQU        'mous'
  35. kTabletDeviceClass                EQU        'tblt'
  36. kJoystickDeviceClass            EQU        'joys'
  37. kTrackballDeviceClass            EQU        'trkb'
  38. kTrackpadDeviceClass            EQU        'trkp'
  39. k3DTrackballDeviceClass            EQU        '3dtb'
  40.  
  41. kMinPTDataSize                    EQU        24
  42.  
  43. kPointerFamilyError                EQU        -1
  44. kPTUnknownRegEntryRef            EQU        -2
  45. kPTInvalidTrackerRef            EQU        -3
  46. kPTMemoryAllocationFailed        EQU        -4
  47. kPTParamErr                        EQU        -5
  48. ; typedef UInt16                         PTDataRelation
  49.  
  50.  
  51. kAbsoluteData                    EQU        1
  52. kRelativeData                    EQU        2
  53. kAbsoluteOrRelativeData            EQU        3
  54. ; *************** Public Data Structures ***************
  55. ;  old name is TrackerID 
  56.  
  57.  
  58. ; typedef unsigned long                 PTButtonState
  59.  
  60. ; typedef PTButtonState *                PTButtonStatePtr
  61.  
  62. PTPosition                RECORD 0
  63. x                         ds.l    1                ; offset: $0 (0)
  64. y                         ds.l    1                ; offset: $4 (4)
  65. z                         ds.l    1                ; offset: $8 (8)
  66. sizeof                     EQU *                    ; size:   $C (12)
  67.                         ENDR
  68. ; typedef struct PTPosition *            PTPositionPtr
  69.  
  70. ;  old name is PointerData 
  71. PTData                    RECORD 0
  72. sequencingTag             ds        AbsoluteTime    ; offset: $0 (0)
  73. position                 ds        PTPosition        ; offset: $8 (8)
  74. buttons                     ds.l    1                ; offset: $14 (20)
  75. uniqueDeviceData         ds.l    1                ; offset: $18 (24)
  76. sizeof                     EQU *                    ; size:   $1C (28)
  77.                         ENDR
  78. ; typedef struct PTData *                PTDataPtr
  79.  
  80. PTDeviceModes            RECORD 0
  81. relation                 ds.w    1                ; offset: $0 (0)
  82. uniqueDeviceModes         ds.l    1                ; offset: $2 (2)
  83. sizeof                     EQU *                    ; size:   $6 (6)
  84.                         ENDR
  85. ; typedef struct PTDeviceModes *        PTDeviceModesPtr
  86.  
  87. ; typedef OSType                         PTDeviceClass
  88.  
  89. PTDeviceIdentifier        RECORD 0
  90. identifier                 ds.b    255                ; offset: $0 (0)
  91.                          ORG 256
  92. sizeof                     EQU *                    ; size:   $100 (256)
  93.                         ENDR
  94. ; typedef struct PTDeviceIdentifier *    PTDeviceIdentifierPtr
  95.  
  96. PTDeviceCapabilities    RECORD 0
  97. deviceClass                 ds.l    1                ; offset: $0 (0)
  98. dataSize                 ds.l    1                ; offset: $4 (4)
  99. modeDataSize             ds.l    1                ; offset: $8 (8)
  100. availableDataRelations     ds.w    1                ; offset: $C (12)
  101. defaultDataRelation         ds.w    1                ; offset: $E (14)
  102. latency                     ds.l    1                ; offset: $10 (16)
  103. imitatesMouse             ds.b    1                ; offset: $14 (20)
  104.                          ORG 22
  105. sizeof                     EQU *                    ; size:   $16 (22)
  106.                         ENDR
  107. ; typedef struct PTDeviceCapabilities *    PTDeviceCapabilitiesPtr
  108.  
  109. PTPinningRectList        RECORD 0
  110. numRects                 ds.w    1                ; offset: $0 (0)        ;  number of rects in list 
  111. pinningRect                 ds.l    1                ; offset: $2 (2)        ;  pointer to a list of rects
  112. ;  rects must be in global coordinates, in pixels
  113. sizeof                     EQU *                    ; size:   $6 (6)
  114.                         ENDR
  115. ; typedef struct PTPinningRectList *    PTPinningRectListPtr
  116.  
  117. ; *************** Client Interfaces ***************
  118. ;  *** Getting information about Devices *** 
  119. ;
  120. ; extern OSStatus PTGetNextDevice(RegEntryRef *currentDevice, PTDeviceClass filter, RegEntryRef **nextDevice)
  121. ;
  122.     IF GENERATINGCFM THEN
  123.         IMPORT_CFM_FUNCTION PTGetNextDevice
  124.     ENDIF
  125.  
  126. ;
  127. ; extern OSStatus PTGetDeviceCapabilities(RegEntryRef *device, PTDeviceCapabilities *capabilities)
  128. ;
  129.     IF GENERATINGCFM THEN
  130.         IMPORT_CFM_FUNCTION PTGetDeviceCapabilities
  131.     ENDIF
  132.  
  133. ;
  134. ; extern OSStatus PTGetDeviceIdentification(RegEntryRef *device, PTDeviceIdentifier *identification)
  135. ;
  136.     IF GENERATINGCFM THEN
  137.         IMPORT_CFM_FUNCTION PTGetDeviceIdentification
  138.     ENDIF
  139.  
  140. ;  *** Setting Device Modes *** 
  141. ;
  142. ; extern OSStatus PTGetDeviceModes(RegEntryRef *device, ByteCount offset, ByteCount numBytes, PTDeviceModes *modes)
  143. ;
  144.     IF GENERATINGCFM THEN
  145.         IMPORT_CFM_FUNCTION PTGetDeviceModes
  146.     ENDIF
  147.  
  148. ;
  149. ; extern OSStatus PTSetDeviceModes(RegEntryRef *device, ByteCount offset, ByteCount numBytes, PTDeviceModes *modes)
  150. ;
  151.     IF GENERATINGCFM THEN
  152.         IMPORT_CFM_FUNCTION PTSetDeviceModes
  153.     ENDIF
  154.  
  155. ;  *** Registering with the Pointing Family *** 
  156. ;
  157. ;     PTRegisterNewTracker:
  158. ;    The client provides a reference to device she wants a connection with,
  159. ;    and whether buffered and/or static data are needed.  A TrackerRef is
  160. ;    returned, which the client must use in all future communications with 
  161. ;    the Pointing Family.  In addition, the size of the PTData structure  
  162. ;    that the given device generates is returned.  
  163. ;
  164. ;
  165. ; extern OSStatus PTRegisterNewTracker(RegEntryRef *device, Boolean bufferedData, Boolean stateData, PTTrackerRef *tracker, ByteCount *dataSize)
  166. ;
  167.     IF GENERATINGCFM THEN
  168.         IMPORT_CFM_FUNCTION PTRegisterNewTracker
  169.     ENDIF
  170.  
  171. ;  *** Maintaining Trackers *** 
  172. ;
  173. ; extern OSStatus PTSetPinningRects(PTTrackerRef tracker, PTPinningRectList *rectList)
  174. ;
  175.     IF GENERATINGCFM THEN
  176.         IMPORT_CFM_FUNCTION PTSetPinningRects
  177.     ENDIF
  178.  
  179. ;  *** Getting Data *** 
  180. ;  DataSize indicates the size of the buffer allocated by the client for dataPtr. 
  181. ;
  182. ; extern OSStatus PTGetTrackerData(PTTrackerRef tracker, ByteCount dataSize, PTData *dataPtr)
  183. ;
  184.     IF GENERATINGCFM THEN
  185.         IMPORT_CFM_FUNCTION PTGetTrackerData
  186.     ENDIF
  187.  
  188. ;
  189. ; extern OSStatus PTFlushTrackerBuffer(PTTrackerRef tracker)
  190. ;
  191.     IF GENERATINGCFM THEN
  192.         IMPORT_CFM_FUNCTION PTFlushTrackerBuffer
  193.     ENDIF
  194.  
  195. ;  *** Checking Tracker State *** 
  196. ;
  197. ; extern OSStatus PTGetPosition(PTTrackerRef tracker, PTPosition *position)
  198. ;
  199.     IF GENERATINGCFM THEN
  200.         IMPORT_CFM_FUNCTION PTGetPosition
  201.     ENDIF
  202.  
  203. ;
  204. ; extern OSStatus PTSetPosition(PTTrackerRef tracker, PTPosition *position)
  205. ;
  206.     IF GENERATINGCFM THEN
  207.         IMPORT_CFM_FUNCTION PTSetPosition
  208.     ENDIF
  209.  
  210. ;
  211. ; extern OSStatus PTMovePosition(PTTrackerRef tracker, PTPosition *position)
  212. ;
  213.     IF GENERATINGCFM THEN
  214.         IMPORT_CFM_FUNCTION PTMovePosition
  215.     ENDIF
  216.  
  217. ;
  218. ; extern OSStatus PTGetButtons(PTTrackerRef tracker, PTButtonState *buttons)
  219. ;
  220.     IF GENERATINGCFM THEN
  221.         IMPORT_CFM_FUNCTION PTGetButtons
  222.     ENDIF
  223.  
  224. ;
  225. ; extern OSStatus PTSetButtons(PTTrackerRef tracker, PTButtonState buttons)
  226. ;
  227.     IF GENERATINGCFM THEN
  228.         IMPORT_CFM_FUNCTION PTSetButtons
  229.     ENDIF
  230.  
  231. ;
  232. ; extern OSStatus PTGetTrackerState(PTTrackerRef tracker, ByteCount dataSize, PTData *data)
  233. ;
  234.     IF GENERATINGCFM THEN
  235.         IMPORT_CFM_FUNCTION PTGetTrackerState
  236.     ENDIF
  237.  
  238. ;
  239. ; extern OSStatus PTSetTrackerState(PTTrackerRef tracker, ByteCount dataSize, PTData *data)
  240. ;
  241.     IF GENERATINGCFM THEN
  242.         IMPORT_CFM_FUNCTION PTSetTrackerState
  243.     ENDIF
  244.  
  245. ;
  246. ; extern OSStatus PTGetTrackerDataByOffset(PTTrackerRef tracker, ByteCount offset, ByteCount numBytes, void *buffer)
  247. ;
  248.     IF GENERATINGCFM THEN
  249.         IMPORT_CFM_FUNCTION PTGetTrackerDataByOffset
  250.     ENDIF
  251.  
  252. ;
  253. ; extern OSStatus PTSetTrackerDataByOffset(PTTrackerRef tracker, ByteCount offset, ByteCount numBytes, void *buffer)
  254. ;
  255.     IF GENERATINGCFM THEN
  256.         IMPORT_CFM_FUNCTION PTSetTrackerDataByOffset
  257.     ENDIF
  258.  
  259.     ENDIF
  260.     ENDIF ; __POINTING__ 
  261.  
  262.